package controller;

import dao.impl.DenunciaDAOImpl;
import java.io.Serializable;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import model.Denuncia;
import org.primefaces.model.map.DefaultMapModel;
import org.primefaces.model.map.LatLng;
import org.primefaces.model.map.MapModel;
import org.primefaces.model.map.Marker;

/**
 *
 * @author robson
 */
@ManagedBean
public class DenunciaController implements Serializable {

    private Denuncia denuncia;
    private MapModel mapModel;

    public DenunciaController() {
        mapModel = new DefaultMapModel();
        denuncia = new Denuncia();
    }

    /**
     * Cadastra uma denuncia
     *
     * @param actionEvent
     */
    public void denunciar(ActionEvent actionEvent) {
        
        DenunciaDAOImpl denunciaDAO = new DenunciaDAOImpl(denuncia);
        denunciaDAO.insert();
        
        Marker marker = new Marker(new LatLng(denuncia.getLatitude(), denuncia.getLongitude()), denuncia.getDetalheDenuncia());
        mapModel.addOverlay(marker);
        addMessage(new FacesMessage(FacesMessage.SEVERITY_INFO, "Denúncia realizada", "Lat:" + denuncia.getLatitude() + ", Lng:" + denuncia.getLongitude()));
    }

    /**
     * Popula as denuncias no model
     */
    public void buscarDenuncias() {
        //Marker marker = new Marker(new LatLng(denuncia.getLatitude(), denuncia.getLongitude()), denuncia.getDetalheDenuncia());  
        //mapModel.addOverlay(marker);  
    }

    public void addMessage(FacesMessage message) {
        FacesContext.getCurrentInstance().addMessage(null, message);
    }

    public Denuncia getDenuncia() {
        return denuncia;
    }

    public void setDenuncia(Denuncia denuncia) {
        this.denuncia = denuncia;
    }

    public MapModel getMapModel() {
        return mapModel;
    }

    public void setMapModel(MapModel mapModel) {
        this.mapModel = mapModel;
    }
}
